#pragma once

class ObjMesh;
#include "DAEFloat3.h"
#include "Mesh.h"
/**
* Creates a new Torus mesh object.
* @author Koen Samyn
*/
class TorusMesh: public Mesh
{
public:
	/**
	* Creates a new torus mesh.
	* @param flags the flags that define what to create for this torus (any 
	* binary combination of POINTS,LINES,TRIANGLES or QUADS) 
	* @param radius1 the inner radius of the torus.
	* @param radius2 the outer radius of the torus.
	* @param segments the number of segments in the torus.
	* @param sides the number of sides.
	*/
	TorusMesh(float radius1, float radius2, int segments, int sides);
	/**
	* Deletes the torus mesh.
	*/
	virtual ~TorusMesh(void);
	/**
	* Returns the created objmesh as a triangle mesh object.
	* @param color the diffuse color for the triangle mesh.
	* @return the triangle mesh.
	*/
	ObjMesh* GetMesh(DAEFloat3 color){
		return m_pMesh;
	}
private:
	void CreateMesh();
	ObjMesh* m_pMesh;

	float m_Radius1;
	float m_Radius2;
	int m_Segments;
	int m_Sides;

	DAEFloat3 m_Color;
};

